;When the socket service is installed it can be used without any change to connect via JDBC ;or ODBC. Before one can make a connection to this service using OLEDB there are some ;things that need to be done.
;
;
;In order to provide the OLDB Client with the information about the supported datatypes,
;the service needs to retrieve this data from a text file. This file is called the
;Providertypes file. This file contains the data that is returned on the ADOProvidertypes
;call and should be customised so that it contains the datatypes supported by the ODBC
;client that is used by the Socket service. Detail about the correct syntax of this file ;follows underneath.
;
;
;These are some things you should know about the Providertypes file :
;
;- The Providertypes file should always be located in the SequeLink Install directory
;- After installation of the socket there is an empty Providertypes file present in the
; SequeLink Install directory (swsoc.ini)
;- Multiple Providertypes files can coexist within the same SequeLink Install directory
;- One Providertypes file can support multiple SequeLink Socket services and/or datasources
; (through the usage of section names one can configure which section is used by which
; datasource)
;- Is loaded into memory at the time the service is started.
;
;
;Once the Providertypes file has been generate and put into the SequeLink Install directory
;it is necessarry to Configure the SequeLink Service Datasource so that it knows the name of
;the Providertypes file and the name of the section within the Providertypes file it has to
;use.
;
;This configuration has to be done through two datasource settings :
; - DataSourceProviderTypesFile : Contains the name of the Providertypes file
; - DataSourceProviderTypesSection : Contians the name of the section within the
; Providertypes file that wil be used to locate the correct set of Datatypeinformation
; within the Providertypes file
;
;The contents of the Providertypes file
;
;The file contains information on
; ? The number of types defined (NR_OF_TYPES)
; ? For each type
; o The OLE-DB/ADO type name
; o The OLE-DB/ADO data type number
; o The OLE-DB/ADO data type precision
; o The OLE-DB/ADO data type precision
;
;More information on each of the values is available in the OLE-DB ProgrammerÆs Reference
;guide in the appendix describing the PROVIDER_TYPES rowset columns;
;
;Missing values (NULL) are specified as æRSNULLÆ for string values and æ-559038737Æ for
;numeric values.
;The example below shows the content of such a DataSourceProviderTypesFile for DB2. The
;DataSourceProviderTypesSection used in this example is æDefaultÆ
;
;
;EXAMPLE
;
;[Default]
;NR_OF_TYPES=16
;
;[DefaultOLEType_1]
;TYPE_NAME=SMALLINT
;DATA_TYPE=2
;COLUMN_SIZE=5
;LITERAL_PREFIX=RSNULL
;LITERAL_SUFFIX=RSNULL
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=0
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_2]
;TYPE_NAME=INTEGER
;DATA_TYPE=3
;COLUMN_SIZE=10
;LITERAL_PREFIX=RSNULL
;LITERAL_SUFFIX=RSNULL
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=0
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_3]
;TYPE_NAME=REAL
;DATA_TYPE=4
;COLUMN_SIZE=7
;LITERAL_PREFIX=RSNULL
;LITERAL_SUFFIX=RSNULL
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=0
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_4]
;TYPE_NAME=FLOAT
;DATA_TYPE=5
;COLUMN_SIZE=15
;LITERAL_PREFIX=RSNULL
;LITERAL_SUFFIX=RSNULL
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=0
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_5]
;TYPE_NAME=BIGINT
;DATA_TYPE=20
;COLUMN_SIZE=19
;LITERAL_PREFIX=RSNULL
;LITERAL_SUFFIX=RSNULL
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=0
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_6]
;TYPE_NAME=VARCHAR () FOR BIT DATA
;DATA_TYPE=128
;COLUMN_SIZE=4000
;LITERAL_PREFIX="X'"
;LITERAL_SUFFIX="'"
;CREATE_PARAMS=max length
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=4
;UNSIGNED_ATTRIBUTE=-559038737
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=0
;
;[DefaultOLEType_7]
;TYPE_NAME=CHAR () FOR BIT DATA
;DATA_TYPE=128
;COLUMN_SIZE=254
;LITERAL_PREFIX="X'"
;LITERAL_SUFFIX="'"
;CREATE_PARAMS=length
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=4
;UNSIGNED_ATTRIBUTE=-559038737
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=0
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_8]
;TYPE_NAME=LONG VARCHAR FOR BIT DATA
;DATA_TYPE=128
;COLUMN_SIZE=32690
;LITERAL_PREFIX="X'"
;LITERAL_SUFFIX="'"
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=1
;UNSIGNED_ATTRIBUTE=-559038737
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=1
;BEST_MATCH=0
;IS_FIXEDLENGTH=0
;[DefaultOLEType_9]
;TYPE_NAME=VARCHAR
;DATA_TYPE=129
;COLUMN_SIZE=4000
;LITERAL_PREFIX="'"
;LITERAL_SUFFIX="'"
;CREATE_PARAMS=max length
;IS_NULLABLE=1
;CASE_SENSITIVE=1
;SEARCHABLE=4
;UNSIGNED_ATTRIBUTE=-559038737
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=0
;[DefaultOLEType_10]
;TYPE_NAME=CHAR
;DATA_TYPE=129
;COLUMN_SIZE=254
;LITERAL_PREFIX="'"
;LITERAL_SUFFIX="'"
;CREATE_PARAMS=length
;IS_NULLABLE=1
;CASE_SENSITIVE=1
;SEARCHABLE=4
;UNSIGNED_ATTRIBUTE=-559038737
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=0
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_11]
;TYPE_NAME=LONG VARCHAR
;DATA_TYPE=129
;COLUMN_SIZE=32690
;LITERAL_PREFIX="'"
;LITERAL_SUFFIX="'"
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=1
;SEARCHABLE=1
;UNSIGNED_ATTRIBUTE=-559038737
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=1
;BEST_MATCH=0
;IS_FIXEDLENGTH=0;
;
;[DefaultOLEType_12]
;TYPE_NAME=NUMERIC
;DATA_TYPE=131
;COLUMN_SIZE=31
;LITERAL_PREFIX=RSNULL
;LITERAL_SUFFIX=RSNULL
;CREATE_PARAMS=precision, scale
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=0
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=0
;MAXIMUM_SCALE=31
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_13]
;TYPE_NAME=DECIMAL
;DATA_TYPE=131
;COLUMN_SIZE=31
;LITERAL_PREFIX=RSNULL
;LITERAL_SUFFIX=RSNULL
;CREATE_PARAMS=precision, scale
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=0
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=0
;MAXIMUM_SCALE=31
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=0
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_14]
;TYPE_NAME=DATE
;DATA_TYPE=133
;COLUMN_SIZE=10
;LITERAL_PREFIX="{d '"
;LITERAL_SUFFIX="'}"
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=-559038737
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_15]
;TYPE_NAME=TIME
;DATA_TYPE=134
;COLUMN_SIZE=8
;LITERAL_PREFIX="{t '"
;LITERAL_SUFFIX="'}"
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=-559038737
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=1
;
;[DefaultOLEType_16]
;TYPE_NAME=TIMESTAMP
;DATA_TYPE=135
;COLUMN_SIZE=26
;LITERAL_PREFIX="{ts '"
;LITERAL_SUFFIX="'}"
;CREATE_PARAMS=RSNULL
;IS_NULLABLE=1
;CASE_SENSITIVE=0
;SEARCHABLE=3
;UNSIGNED_ATTRIBUTE=-559038737
;FIXED_PREC_SCALE=0
;AUTO_UNIQUE_VALUE=0
;LOCAL_TYPE_NAME=RSNULL
;MINIMUM_SCALE=-559038737
;MAXIMUM_SCALE=-559038737
;GUID=
;TYPE_LIB=RSNULL
;VERSION=RSNULL
;IS_LONG=0
;BEST_MATCH=1
;IS_FIXEDLENGTH=1
;
;
;How to use DataSourceProviderTypesSection
;
;The DataSourceProviderTypesFile can contain ADO type information for different ODBC drivers
;(for those situations where you want the SequeLink Socket server to connect through
;different ODBC drivers to different data stores). In that case, each ODBC driver should get ;a specific section name assigned to it, and the ædefaultÆ prefix, as used in the example
;above, should be replaced by the ODBC driver specific section name. The section name itself
;should be configured in the SequeLink server side data source through the
;DataSourceProviderTypesSection attribute.
;
;
;As an example, assume you need ADO connectivity to both SQLanywhere and MSAccess through ;the
;socket. In that case the following DataSourceProviderTypesFile could be used (extract ;only).
;
;
;[SQLanywhere]
;NR_OF_TYPES=<x>
;
;[SQLanywhereOLEType_1]
;TYPE_NAME=
;
;[SQLanywhereOLEType_2]
;
;[SQLanywhereOLEType_<x>]
;
;[MSAccess]
;NR_OF_TYPES=<y>
;
;[MSAccessOLEType_1]
;TYPE_NAME=
;
;[MSAccessOLEType_2]
;
;[MSAccessOLEType_<y>]
;
;The SequeLink server side data source that configures connectivity to MSAccess should then
;use DataSourceProviderTypesSection=MSAccess and the data source (a different one) that
;configures connectivity to SQLanywhere should use
;DataSourceProviderTypesSection=SQLanywhere. The value for DataSourceProviderTypesFile ;should refer to the same file for both data sources.